幫助中心
技術(shù)運(yùn)維百科
LinuxKit NanoServer和DevOps是個(gè)啥關(guān)系?
2017-05-12 10:23:17
  又是一年DockerCon,從14年開始關(guān)注Docker,每年的DockerCon都能帶來不少驚(hao)喜(wan)的東西,今年的新玩具應(yīng)該就算是LinuxKit和Moby了。   今天快快的把玩了一下,從yml文件直接打包出一個(gè)全新的linux服務(wù)器鏡像的過程非常簡單讓人不禁想起了樂高積木,這次在DockerCon上樂高玩具也被多次推到前臺(tái),甚至演講的背景音樂都好像進(jìn)了街機(jī)廳一樣。像搭積木一樣搭建軟件系統(tǒng),這是多少程序員的夢想,也好像我們從開始寫代碼的那一刻就覺得這才應(yīng)該是軟件最終的形態(tài)…… 而且這事兒看上去也好像沒有那么復(fù)雜,但當(dāng)你寫了幾年代碼后才發(fā)現(xiàn),這不過是個(gè)美好的故事。今年,我們似乎向這個(gè)目標(biāo)又邁進(jìn)了一步。   云時(shí)代的OS到底會(huì)長成什么樣子,這個(gè)問題其實(shí)是多家云廠商都在找尋的方向。大多數(shù)的云廠商的做法是將大家常用的操作系統(tǒng)一股腦的放到自己的模版庫中。但這里有一個(gè)不容忽視的問題:主機(jī)時(shí)代的操作系統(tǒng)是多用途的,而虛擬化/云計(jì)算時(shí)代的操作系統(tǒng)則是單一用途的。以前,我們會(huì)將多種應(yīng)用盡量部署在同一臺(tái)主機(jī)上以便節(jié)省資源(因?yàn)榇罱ǚ?wù)器是一個(gè)辛苦活),這要求我們的操作系統(tǒng)足夠通用化,包含的組件也是向著越來越豐富的方向發(fā)展;而虛擬化和云計(jì)算興起以后,我們會(huì)盡量在一臺(tái)主機(jī)上只部署單一應(yīng)用(因?yàn)榇罱ǚ?wù)變的無比簡單),以提升應(yīng)用部署速度,響應(yīng)速度和敏捷程度。而原先那種通用化(臃腫)的操作系統(tǒng)就變的不那么合適了,更重要的是,由于那些與應(yīng)用無關(guān)組件的存在,我們必須花費(fèi)很多不必要的精力來維護(hù)這些組件,僅僅是為了能夠讓我們大樓的地基足夠穩(wěn)固 … … 有沒有一種蓋好了大樓再拆掉不需要的地基的做法?這其實(shí)就是LinuxKit/NanoServer想要解決的問題。   最近幾年DevOps風(fēng)生水起,IT界非常擅長創(chuàng)造各種新概念,而讓很多人迷失了我們真正需要些什么。無論是敏捷,精益,DevOps還是持續(xù)交付其實(shí)我們都在解決同一個(gè)問題,那就是效率。   如何才能提高效率,其實(shí)基本的思路只有兩個(gè):1. 減小粒度,將復(fù)雜問題簡單化,降低復(fù)雜度,減少為了那些過程復(fù)雜度所付出的管理成本。2. 解耦,給我們的系統(tǒng),團(tuán)隊(duì)足夠自由去按照自己的步調(diào)解決問題,減少他們之間的摩擦,讓我們投入的資源盡量多的轉(zhuǎn)換成生產(chǎn)力。   大家可能感覺這2個(gè)話題和LinuxKit/NanoServer沒啥關(guān)系,而實(shí)際上關(guān)系很大。這次Docker的做法是一種降維打擊的策略。簡單來說,docker就是一種對(duì)技術(shù)棧進(jìn)行編排的技術(shù),當(dāng)前對(duì)于對(duì)應(yīng)用層的優(yōu)化已經(jīng)到達(dá)一定程度了,那么如何邁出下一步就是個(gè)大問題,而對(duì)操作系統(tǒng)開刀就是個(gè)自然的選擇。LinuxKit通過一個(gè)yml文件對(duì)操作系統(tǒng)組件進(jìn)行描述,允許用戶根據(jù)自己的需求動(dòng)態(tài)創(chuàng)建OS鏡像,這種方式給予了用戶從根本上控制應(yīng)用系統(tǒng)技術(shù)棧的能力。底層的依賴減少了,問題自然少了,運(yùn)行速度,出錯(cuò)幾率和安全性都會(huì)得到優(yōu)化。這其實(shí)將復(fù)雜問題簡單化的一種方式。同時(shí),因?yàn)橐蕾囎兩?,和其他組件的耦合程度也降低。   我們再看一下NanoServer,這是微軟在Server 2016中所提供的一個(gè)全新的操作系統(tǒng)發(fā)行版,它同樣允許用戶根據(jù)自己的需要選擇所需要的組件,并動(dòng)態(tài)生成一個(gè)專用的操作系統(tǒng)版本。下面這張圖是Nano Server Image Builder中用來選擇操作系統(tǒng)組件的配置界面:
  下面這個(gè)是一個(gè)linuxkit.yml文件,同樣是用來對(duì)操作系統(tǒng)進(jìn)行組裝:   一個(gè)linuxkit.yml文件   是不是有種殊途同歸的感覺,有了這樣的工具,我們不僅僅可以為我們的應(yīng)用定制操作系統(tǒng),而且這個(gè)操作系統(tǒng)還會(huì)變的非常的小,啟動(dòng)也更加迅速,更加適合云時(shí)代的操作系統(tǒng)特點(diǎn)。像Win Server這樣的系統(tǒng)都可以做到400M的體積和40秒的啟動(dòng)速度:
  Win Server   使用linuxkit更加可以制作出60M左右的操作系統(tǒng)鏡像
  這才是使用云時(shí)代的操作系統(tǒng)的正確姿勢,這一次,微軟和Docker又想到一起去了。其實(shí)我們永遠(yuǎn)要記住一點(diǎn),我們要的不是操作系統(tǒng),我們要的是上面的應(yīng)用。蓋好了大樓然后拆掉地基這種事情可能也只有在軟件行業(yè)才能做到了。
新客優(yōu)惠
特價(jià) 酷睿i3系列
性價(jià)比熱銷推薦,年銷量第一
1180/月起
USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請(qǐng)免費(fèi)產(chǎn)品試用服務(wù)
立即申請(qǐng)